Apache Commons Collections হল একটি ওপেন সোর্স লাইব্রেরি যা Java Collections Framework (JCF) এর উপর ভিত্তি করে অতিরিক্ত ডেটা স্ট্রাকচার এবং ইউটিলিটি ফাংশন সরবরাহ করে। এটি Java প্রোগ্রামিং ভাষায় ব্যবহৃত একটি খুবই জনপ্রিয় লাইব্রেরি যা ডেটা স্টোরেজ, ম্যানিপুলেশন এবং অ্যাক্সেস করার জন্য অতিরিক্ত কার্যকারিতা প্রদান করে।
Apache Commons Collections এর মূল উদ্দেশ্য হল Java Collections Framework এর সীমানা ছাড়িয়ে গিয়ে আরও কার্যকরী ডেটা স্ট্রাকচার এবং ইউটিলিটি ক্লাস প্রদান করা। Java Collections Framework মূলত List, Set, Map এবং Queue এ কাজ করে, তবে Apache Commons Collections Java-এর সাধারণ কালেকশনগুলোর মধ্যে অতিরিক্ত ক্ষমতা যোগ করে। এই লাইব্রেরিটি Bag, MultiMap, BidiMap, ListOrderedMap, LIFO/FIFO Queue ইত্যাদি নতুন ডেটা স্ট্রাকচার সরবরাহ করে যা Java Collections Framework-এ বিদ্যমান নেই।
Apache Commons Collections বিভিন্ন ধরনের কার্যকারিতা এবং ডেটা স্ট্রাকচার প্রদান করে, কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য নিম্নরূপ:
Bag একটি বিশেষ ধরনের কালেকশন যা উপাদানগুলির উপস্থিতি সংখ্যা সংরক্ষণ করে। এর মানে হল যে, একটি উপাদান একাধিকবার থাকতে পারে।
import org.apache.commons.collections4.Bag;
import org.apache.commons.collections4.bag.HashBag;
public class BagExample {
public static void main(String[] args) {
Bag<String> bag = new HashBag<>();
bag.add("apple");
bag.add("banana");
bag.add("apple");
System.out.println("Bag contents: " + bag);
System.out.println("apple count: " + bag.getCount("apple"));
}
}
এখানে:
HashBag
হল Bag ইমপ্লিমেন্টেশন, যা উপাদানগুলির উপস্থিতি গণনা করে এবং getCount()
ফাংশনটি নির্দিষ্ট উপাদানটির উপস্থিতির সংখ্যা প্রদর্শন করে।BidiMap একটি ম্যাপ যেখানে কী এবং ভ্যালু উভয়ই একে অপরের সাথে সম্পর্কযুক্ত। আপনি কী থেকে ভ্যালু এবং ভ্যালু থেকে কী দুটোই এক্সেস করতে পারেন।
import org.apache.commons.collections4.BidiMap;
import org.apache.commons.collections4.map.HashedMap;
public class BidiMapExample {
public static void main(String[] args) {
BidiMap<String, String> bidiMap = new HashedMap<>();
bidiMap.put("apple", "fruit");
bidiMap.put("carrot", "vegetable");
System.out.println("apple is a " + bidiMap.get("apple"));
System.out.println("fruit is a " + bidiMap.getKey("fruit"));
}
}
এখানে:
HashedMap
একটি BidiMap ইমপ্লিমেন্টেশন, যা কী এবং ভ্যালু উভয়ের জন্য মিউটেবল (bidirectional) এক্সেস সরবরাহ করে।getKey()
ফাংশনটি ভ্যালু থেকে কী বের করার সুযোগ দেয়।MultiMap একটি ম্যাপ যেখানে প্রতিটি কী একাধিক ভ্যালুর সাথে সম্পর্কিত থাকে। এটি সাধারণত যখন আপনি একটি কী-এর জন্য একাধিক মানের প্রয়োজন হয়, তখন ব্যবহৃত হয়।
import org.apache.commons.collections4.MultiMap;
import org.apache.commons.collections4.map.MultiValueMap;
public class MultiMapExample {
public static void main(String[] args) {
MultiMap<String, String> multiMap = new MultiValueMap<>();
multiMap.put("fruits", "apple");
multiMap.put("fruits", "banana");
multiMap.put("fruits", "orange");
System.out.println("fruits: " + multiMap.get("fruits"));
}
}
এখানে:
MultiValueMap
একটি MultiMap ইমপ্লিমেন্টেশন, যা একই কী-এর জন্য একাধিক মান সংরক্ষণ করতে সক্ষম।put()
ফাংশনটি কী-এর সাথে একাধিক মান সংযুক্ত করে।ListOrderedMap একটি ম্যাপ যা তালিকার মতো আচরণ করে এবং উপাদানগুলি ইনসার্ট করা অর্ডারে সংরক্ষণ করে। এটি সাধারণভাবে অর্ডারযুক্ত ম্যাপের মতো কাজ করে।
আপনি যদি Apache Commons Collections ব্যবহার করতে চান, তবে আপনাকে এটি আপনার প্রোজেক্টে যুক্ত করতে হবে। যদি আপনি Maven ব্যবহার করেন, তবে আপনার pom.xml ফাইলে নিম্নলিখিত ডিপেনডেন্সি যোগ করতে হবে:
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.4</version>
</dependency>
এটি আপনার প্রোজেক্টে Apache Commons Collections লাইব্রেরি যুক্ত করবে।
Apache Commons Collections একটি শক্তিশালী Java লাইব্রেরি যা Java Collections Framework-এর বাইরে অতিরিক্ত ডেটা স্ট্রাকচার এবং ইউটিলিটি ক্লাস সরবরাহ করে। এতে Bag, BidiMap, MultiMap, ListOrderedMap, LIFO/FIFO Queue সহ উন্নত ডেটা স্ট্রাকচার রয়েছে, যা অনেক পরিস্থিতিতে কাজে আসে। এটি Java-এর স্ট্যান্ডার্ড কালেকশন ফ্রেমওয়ার্কের সাথে পুরোপুরি সামঞ্জস্যপূর্ণ এবং ডেটা স্টোরেজ, ম্যানিপুলেশন এবং অ্যাক্সেসের জন্য অতিরিক্ত কার্যকারিতা প্রদান করে।
common.read_more